package com.ikun.admin.modules.gen.controller;


import com.ikun.admin.common.annotation.OperationAnno;
import com.ikun.admin.modules.gen.entity.CodeConfig;
import com.ikun.admin.modules.gen.iservice.ICodeConfigService;
import com.ikun.admin.modules.gen.vo.CodeConfigCommonVo;
import com.ikun.admin.modules.gen.vo.CodeConfigDictVo;
import com.ikun.admin.modules.sys.entity.Dict;
import com.ikun.common.result.Result;
import com.ikun.common.search.PageData;
import com.ikun.common.search.PageResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 *  用来配置代码 前端控制器
 * </p>
 *
 * @author ${author}
 * @since 2024-04-13
 */
@RestController
@RequestMapping("/develop/codeConfig")
@Api(tags = "开发流程-数据配置")
public class CodeConfigController {

    @Autowired
    private ICodeConfigService iCodeConfigService;

    @PostMapping("/codConfig/addOrUpdate/API_001")
    @ApiOperation("新增或者修改代码生成配置接口")
    @OperationAnno(type=0,tableEntity = CodeConfig.class)
    public Result<String> codeConfigAddOrUpdate(@RequestBody CodeConfigCommonVo codeConfigAddOrUpdateParamVo) {
        return iCodeConfigService.codeConfigAddOrUpdate(codeConfigAddOrUpdateParamVo);
    }

    @PostMapping("/codeConfig/list/API_002")
    @ApiOperation("分頁查詢代码生成配置接口")
    public Result<PageResult<CodeConfigCommonVo>> codeConfigList(@RequestBody PageData<CodeConfigCommonVo> pageData) {

        return iCodeConfigService.codeConfigList(pageData);
    }

    @DeleteMapping("/codeConfig/delete/API_003/{id}")
    @ApiOperation("根据id删除代码生成配置接口")
    @OperationAnno(type=1,tableEntity = CodeConfig.class)
    public Result<String> codeConfigDelete(@PathVariable Long id) {

        return iCodeConfigService.codeConfigDelete(id);
    }
    @GetMapping("/codeConfig/select/API_004/{id}")
    @ApiOperation("根据id查询代码生成配置接口")
    public Result<CodeConfigCommonVo> codeConfigDetail(@PathVariable Long id) {
        return iCodeConfigService.codeConfigDetail(id);
    }

    @GetMapping("/codeConfig/dict/API_005")
    @ApiOperation("获取字典数据")
    public Result<List<CodeConfigDictVo>> codeConfigDict(){
        return iCodeConfigService.codeConfigDict();
    }
}

